package com.maxjay.component.metadata.service;

import java.util.List;

import com.maxjay.component.metadata.model.Entity;
import com.maxjay.component.metadata.model.Record;

/**
 * Entity实体服务类
 * 
 * @author zhaixm
 *
 */
public interface EntityService {
	
	/**
	 * 加载实体对象
	 * 
	 * @param entity 实体对象
	 * @param entityObjId 实体ID
	 * @return
	 */
	Record load(Entity entity, String entityObjId);
	
	/**
	 * 加载实体对象用于显示
	 * 
	 * @param entity 实体对象
	 * @param entityObjId 实体ID
	 * @return
	 */
	Record loadDisplay(Entity entity, String entityObjId);
	
	/**
	 * 新增实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void save(Entity entity, Record record);
	
	/**
	 * 新增实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void save(Entity entity, List<Record> records);

	/**
	 * 更新实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void update(Entity entity, Record record);
	
	/**
	 * 新增实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void update(Entity entity, List<Record> records);

	/**
	 * 删除实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void delete(Entity entity, String keyFieldValue);
	
	/**
	 * 新增实体对象
	 * 
	 * @param entity
	 * @param record
	 */
	void delete(Entity entity, List<String> keyFieldValues);
	
}
